The present invention relates to a system for decoding and reproducing digital video data encoded according to the MPEG (Moving Picture Experts Group) standard and recorded on a recording medium. More particularly, the present invention relates to a video data decoding method and apparatus for high-speed reproduction, in which user data regarding recorded pictures is used to record picture size information which is used to skip certain picture frames during the high-speed reproduction, to thereby reduce a reproduction time and display a more pleasing image.
New technologies for digitally processing video and audio signals have been proposed for high-quality video and audio. In the case of a video signal, it may be stored in a compact disk, a digital audio tape, a hard disk drive, and an optical disk, or transmitted via a telephone line, an integrated services digital network (ISDN), an ATM, a communication satellite, or a satellite broadcasting line. For this purpose, MPEG standards have been adopted (e.g., MPEG-1, parts 1-4; MPEG-2, parts 1-6 and 9) as an international standard for compressing and restoring digital video data. A digital video data compression algorithm proposed according to the MPEG includes essentially a discrete cosine transform (DCT), a quantization, a variable-length-coding and a motion compensation.
According to the MPEG, the information included in a bit stream to be compressed and transmitted is arranged to have six hierarchical layers, as shown in FIG. 1.
FIG. 1 shows a hierarchical structure of the MPEG video data, including a video sequence layer being the uppermost layer, a GOP (group of pictures) layer being a basic unit for randomly accessing video data, a picture layer. Each picture in the picture layer is encoded as an intra-coded-picture (I-picture), a predictive-coded-picture (P-picture), or a bidirectionally-predictive-coded-picture (B-picture). The a video sequence layer is composed of a sequence header, one or more GOP groups and a sequence end code. In the case of a general movie, the entire movie is formed of a video sequence or several video sequences according to the contents of the movie.
Each picture is composed of plural slices of a slice layer in which various processing steps necessary for compression are independently performed on the slices so that an influence of a generated error is not transferred over a degree. Each slice is composed of plural macroblocks of a macroblock layer. The macroblock is the basic unit of data upon which motion compensation is performed. Each macroblock is composed of plural blocks in a block layer. Each block is defined as 8 horizontal pixels by eight vertical pixels and is the basic unit of the DCT.
The encoded video data which is recorded or transmitted by being arranged with the hierarchical structure described above is decoded via the process shown in FIG. 2 and regenerated into a reproduced image corresponding to an original image.
FIG. 2 is a flow chart for explaining a decoding method of the MPEG video data. First, a sequence header positioned in the leading end of the video sequence is analyzed from an input bit stream, to obtain necessary information such as a picture size and a picture rate (step 101). Then, a decoding operation starts in units of one or more GOPs constituting a vislequence layer. To perform a decoding operation on each GOP unit, a GOP header is analyzed (step 102) and one or more pictures constituting the GOP are decoded (step 103). After decoding one picture (an I-picture, a P-picture or a B-picture), it is checked whether the following data is a picture start code (step 104). If the following data is a picture start code in step 104, the program returns to step 103 to perform a decoding of the picture data successive to that picture start code. If the following data is not a picture start code in step 104, it is checked whether the following data is a group start code (step 105). If the following data is a group start code in step 105, then a new GOP unit is beginning and the program returns to step 102 to repetitively perform a decoding operation of the new GOP. If the following data is not a group start code in step 105, it is checked whether the following data is a sequence header code (step 106). If the following data is a sequence header code in step 106, the program returns to step 101 to repetitively perform the program from the analysis of the sequence header. If the following data is not a sequence header code in step 106, it is checked whether the following data is a sequence end code (step 107) since it should be generated, to then finish the decoding operation.
The pictures whose decoding are performed in step 103 of FIG. 2 is composed of I-, P- and B-pictures as shown in FIG. 3. FIG. 3 shows the structure of a picture layer of the MPEG video data in i the NTSC system. As shown in FIG. 3, 30 frames are formed per one second, among which 2 frames are constituted by I-pictures, 8 frames are constituted by P-pictures and 20 frames are constituted by B-pictures. When an I-picture is encoded, the picture is reconstructed by only information of the I-picture itself, and encoded as it is via DCT without taking a difference. The I-pictures are inserted into some portions of frames to enable random access and high-speed reproduction, despite the poor encoding efficiency of intra-picture encoding. The P-picture is a reference picture for taking a difference, and uses a previously decoded I-picture or a P-picture which is time-led. The P-picture is encoded, either using a difference from a motion compensated predictive picture, or without using such a difference, which is selected in units of a macroblock for high efficiency. The B-picture is a predictive picture, and uses three kinds of pictures such as a previously decoded I-picture or a P-picture which is time-led or a previously decoded I-picture or P-picture which is time-lagged, and an interpolation picture which is made in both directions. Among a difference coding and an intra-coding after the motion compensation of the three above kinds, the coding providing the highest efficiency is selected in units of a macroblock.
When high-speed reproduction such as a fast forward play and a fast reverse play is performed using the above-described kinds of the pictures, only an I-picture is generally used, which is because it is possible to decode the following picture which is not decoded since each I-picture is independently encoded. However, since only data corresponding to the pictures of 2 frames per second is displayed in case of the NTSC system during the high-speed reproduction using only I-picture, an offensive picture is obtained, which is regarded as fast reproduction of a still image. Moreover, if data in a movie is high-speed reproduced, there is less correlation between pictures, which causes difficulty in grasping the contents of the movie.
It has been proposed that the P-picture as well as the I-picture be used to perform high-speed reproduction to solve the above problem. However, this solution requires that every B-picture positioned between one P-picture and the next P-picture, or between an I-picture and the next P-picture should be read. This consumes much decoding and reproduction time. As a result, a high-speed reproduction time becomes nearly equal to a normal reproduction time.
To solve the above problem, it is an object of the present invention to provide a video data decoding method for high-speed reproduction, in which picture size information is recorded in a picture to obtain a comfortable picture as well as to reduce a high-speed reproduction time and picture data can be skipped as many as a defined size.
It is another object of the present invention to provide an apparatus embodying the above video data decoding method for high-speed reproduction.
To accomplish the above object of the present invention, there is provided a video data decoding method for high-speed reproduction for decoding and reproducing variable bit rate encoded picture data, the video data decoding method comprising the steps of:
(a) analyzing overhead data positioned in the leading end of each picture unit of data and judging whether the picture unit of data is picture data to be decoded and reproduced during high-speed reproduction or picture data to be skipped without decoding during high-speed reproduction;
(b) judging whether a current reproduction mode is a high-speed reproduction mode or a normal reproduction mode;
(c) decoding and reproducing each input picture unit of data if it has been judged in said step (b) that the current reproduction mode is the normal reproduction mode;
(d) decoding and reproducing each input picture unit of data which has been judged in said step (a) to be picture data to be decoded and reproduced during high-speed reproduction, if it has been judged in said step (b) that the current reproduction mode is the high-speed reproduction mode; and
(e) skipping without decoding each input picture unit of data, according to an amount of data of a predetermined picture size information, which has been judged in said step (a) to be picture data to be skipped without decoding during high-speed reproduction, if it has been judged in said step (b) that the current reproduction mode as the high-speed reproduction mode.
To accomplish the other object of the present invention, there is provided a video data decoding apparatus for high-speed reproduction for decoding and reproducing digital video data encoded according to the MPEG standard and recorded on a recording medium, the video data decoding apparatus comprising:
a microprocessor unit for analyzing input MPEG video data, for judging whether each unit of picture data corresponds to a picture which is to be decoded or to be skipped during high-speed reproduction, and for controlling decoding of the units of picture data judged to be decoded and skipping of the units of picture data judged to be skipped using predetermined information regarding the size of each of the units of picture data judged to be skipped;
a buffer for storing the input MPEG video data; and
decoding means for decoding video data read from said buffer under control of said microprocessor unit.